package cn.yj.core.business.service.iservice;

import cn.yj.annotation.pagehelper.page.Page;
import cn.yj.cgs.dba.entity.UserTask;
import cn.yj.cgs.dba.entity.vo.TaskView;
import cn.yj.cgs.dba.entity.vo.TaskVo;
import cn.yj.cgs.dba.entity.vo.TaskCommonVo;
import cn.yj.entity.R;

import java.util.List;
import java.util.Map;

/**
 * <br>
 *
 * @author 永健
 * @since 2021-04-19 16:46
 */
public interface ITaskService<T> extends TaskResources<T> {

    /**
     * 发布
     *
     * @param task 任务
     *
     * @return true/false
     */
    R publish(TaskVo task);

    Page<TaskView> pageList(Map<String, Object> map, Page<TaskView> page);


    Page<UserTask> listMyDoTask(Page<UserTask> page, Map<String, Object> map);


    /**
     * 我发布的单子
     *
     * @param page 分页对象
     * @param map  参数
     */
    Page<TaskView> getTaskListByUserCode(Page<TaskView> page, Map<String, Object> map);


    /**
     * 更新任务信息
     *
     * @param task 信息
     *
     * @return true/false
     */
    R updateInfoById(TaskVo task);


    /**
     * 根据编号获取任务
     *
     * @param taskNo 编号
     *
     * @return task
     */
    TaskVo getByTaskNo(String taskNo);

    List<TaskVo> getTaskByStatus(String status,String auditStatus);

    List<TaskCommonVo> getNewestTask(String schoolName);
}
